#ifndef _OCPP_GridVariable_H__
#define _OCPP_GridVariable_H__

#include "GridExtent.h"
#include "GridDataReader.h"

namespace OCPP
{
	namespace Volume
	{
		using GridShape = std::vector<size_t>;

		class _volumeExport GridVariable
		{
		public:
			virtual ~GridVariable(){}

			virtual GridVariablePtr findDimVariable(String name);

			virtual StringVector getDims() { return StringVector(); }
			virtual GridShape getShape() { return GridShape(); }
			virtual String getName() { return ""; }
			virtual String getTimeString(int index) { return ""; }
			virtual String getUnitsString() { return ""; }
			virtual FloatVector readFloat() { return FloatVector(); }

			GridFileReaderWeakPtr _gridFileReaderPtr;
		};

		using GridVariableVec = std::vector<GridVariable>;
	}
}


#endif // !_OCPP_NcOptions_H__
